Apply fix from Sam Solon, bug #54577, update value even if not drawable.
authorHavoc Pennington <hp@redhat.com>
Mon, 4 Jun 2001 21:55:20 +0000 (21:55 +0000)
committerHavoc Pennington <hp@src.gnome.org>
Mon, 4 Jun 2001 21:55:20 +0000 (21:55 +0000)
2001-06-04  Havoc Pennington  <hp@redhat.com>

* gtk/gtkclist.c (vadjustment_value_changed): Apply fix from
Sam Solon, bug #54577, update value even if not drawable.

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkclist.c

index 23d48bd1a46757dbcbf641841c036ef46e8f3efe..d6c4f2d081ef85c609a232829ac370f1d0fd0e9a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2001-06-04  Havoc Pennington  <hp@redhat.com>
+
+       * gtk/gtkclist.c (vadjustment_value_changed): Apply fix from
+       Sam Solon, bug #54577, update value even if not drawable.
+
 2001-06-04  Havoc Pennington  <hp@redhat.com>
 
        * gtk/gtkrange.c (gtk_range_scroll_event): change SCROLL_RIGHT to
index 23d48bd1a46757dbcbf641841c036ef46e8f3efe..d6c4f2d081ef85c609a232829ac370f1d0fd0e9a 100644 (file)
@@ -1,3 +1,8 @@
+2001-06-04  Havoc Pennington  <hp@redhat.com>
+
+       * gtk/gtkclist.c (vadjustment_value_changed): Apply fix from
+       Sam Solon, bug #54577, update value even if not drawable.
+
 2001-06-04  Havoc Pennington  <hp@redhat.com>
 
        * gtk/gtkrange.c (gtk_range_scroll_event): change SCROLL_RIGHT to
index 23d48bd1a46757dbcbf641841c036ef46e8f3efe..d6c4f2d081ef85c609a232829ac370f1d0fd0e9a 100644 (file)
@@ -1,3 +1,8 @@
+2001-06-04  Havoc Pennington  <hp@redhat.com>
+
+       * gtk/gtkclist.c (vadjustment_value_changed): Apply fix from
+       Sam Solon, bug #54577, update value even if not drawable.
+
 2001-06-04  Havoc Pennington  <hp@redhat.com>
 
        * gtk/gtkrange.c (gtk_range_scroll_event): change SCROLL_RIGHT to
index 23d48bd1a46757dbcbf641841c036ef46e8f3efe..d6c4f2d081ef85c609a232829ac370f1d0fd0e9a 100644 (file)
@@ -1,3 +1,8 @@
+2001-06-04  Havoc Pennington  <hp@redhat.com>
+
+       * gtk/gtkclist.c (vadjustment_value_changed): Apply fix from
+       Sam Solon, bug #54577, update value even if not drawable.
+
 2001-06-04  Havoc Pennington  <hp@redhat.com>
 
        * gtk/gtkrange.c (gtk_range_scroll_event): change SCROLL_RIGHT to
index 23d48bd1a46757dbcbf641841c036ef46e8f3efe..d6c4f2d081ef85c609a232829ac370f1d0fd0e9a 100644 (file)
@@ -1,3 +1,8 @@
+2001-06-04  Havoc Pennington  <hp@redhat.com>
+
+       * gtk/gtkclist.c (vadjustment_value_changed): Apply fix from
+       Sam Solon, bug #54577, update value even if not drawable.
+
 2001-06-04  Havoc Pennington  <hp@redhat.com>
 
        * gtk/gtkrange.c (gtk_range_scroll_event): change SCROLL_RIGHT to
index 23d48bd1a46757dbcbf641841c036ef46e8f3efe..d6c4f2d081ef85c609a232829ac370f1d0fd0e9a 100644 (file)
@@ -1,3 +1,8 @@
+2001-06-04  Havoc Pennington  <hp@redhat.com>
+
+       * gtk/gtkclist.c (vadjustment_value_changed): Apply fix from
+       Sam Solon, bug #54577, update value even if not drawable.
+
 2001-06-04  Havoc Pennington  <hp@redhat.com>
 
        * gtk/gtkrange.c (gtk_range_scroll_event): change SCROLL_RIGHT to
index 23d48bd1a46757dbcbf641841c036ef46e8f3efe..d6c4f2d081ef85c609a232829ac370f1d0fd0e9a 100644 (file)
@@ -1,3 +1,8 @@
+2001-06-04  Havoc Pennington  <hp@redhat.com>
+
+       * gtk/gtkclist.c (vadjustment_value_changed): Apply fix from
+       Sam Solon, bug #54577, update value even if not drawable.
+
 2001-06-04  Havoc Pennington  <hp@redhat.com>
 
        * gtk/gtkrange.c (gtk_range_scroll_event): change SCROLL_RIGHT to
index a32d4a4524374e85b98ba5d762e5024ef83688d9..c483647181829e5ffa509f39373388521d4e47f4 100644 (file)
@@ -6124,14 +6124,18 @@ vadjustment_value_changed (GtkAdjustment *adjustment,
 
   clist = GTK_CLIST (data);
 
-  if (!GTK_WIDGET_DRAWABLE (clist) || adjustment != clist->vadjustment)
+  if (adjustment != clist->vadjustment)
     return;
 
   value = -adjustment->value;
   dy = value - clist->voffset;
   clist->voffset = value;
-  gdk_window_scroll (clist->clist_window, 0, dy);
-  gdk_window_process_updates (clist->clist_window, FALSE);
+
+  if (GTK_WIDGET_DRAWABLE (clist))
+    {
+      gdk_window_scroll (clist->clist_window, 0, dy);
+      gdk_window_process_updates (clist->clist_window, FALSE);
+    }
   
   return;
 }
@@ -6155,90 +6159,96 @@ hadjustment_value_changed (GtkAdjustment *adjustment,
   clist = GTK_CLIST (data);
   container = GTK_CONTAINER (data);
 
-  if (!GTK_WIDGET_DRAWABLE (clist) || adjustment != clist->hadjustment)
+  if (adjustment != clist->hadjustment)
     return;
 
   value = adjustment->value;
 
   dx = -value - clist->hoffset;
-  
-  /* move the column buttons and resize windows */
-  for (i = (dx<0)? 0 : clist->columns-1; i >= 0 && i < clist->columns; i += (dx<0)? 1 : -1)
-    {
-      if (clist->column[i].button)
-       {
-         clist->column[i].button->allocation.x -= value + clist->hoffset;
-         
-         if (clist->column[i].button->window)
-           {
-             gdk_window_move (clist->column[i].button->window,
-                              clist->column[i].button->allocation.x,
-                              clist->column[i].button->allocation.y);
-             
-             if (clist->column[i].window)
-               gdk_window_move (clist->column[i].window,
-                                clist->column[i].button->allocation.x +
-                                clist->column[i].button->allocation.width - 
-                                (DRAG_WIDTH / 2), 0); 
-           }
-       }
-    }
 
+  if (GTK_WIDGET_REALIZED (clist))
+    {
+      /* move the column buttons and resize windows */
+      for (i = (dx<0)? 0 : clist->columns-1; i >= 0 && i < clist->columns; i += (dx<0)? 1 : -1)
+        {
+          if (clist->column[i].button)
+            {
+              clist->column[i].button->allocation.x -= value + clist->hoffset;
+              
+              if (clist->column[i].button->window)
+                {
+                  gdk_window_move (clist->column[i].button->window,
+                                   clist->column[i].button->allocation.x,
+                                   clist->column[i].button->allocation.y);
+                  
+                  if (clist->column[i].window)
+                    gdk_window_move (clist->column[i].window,
+                                     clist->column[i].button->allocation.x +
+                                     clist->column[i].button->allocation.width - 
+                                     (DRAG_WIDTH / 2), 0); 
+                }
+            }
+        }
+    }
 
   clist->hoffset = -value;
 
-  if (GTK_WIDGET_CAN_FOCUS(clist) && GTK_WIDGET_HAS_FOCUS(clist) &&
-      !container->focus_child && GTK_CLIST_ADD_MODE(clist))
+
+  if (GTK_WIDGET_DRAWABLE (clist))
     {
-      y = ROW_TOP_YPIXEL (clist, clist->focus_row);
+      if (GTK_WIDGET_CAN_FOCUS(clist) && GTK_WIDGET_HAS_FOCUS(clist) &&
+          !container->focus_child && GTK_CLIST_ADD_MODE(clist))
+        {
+          y = ROW_TOP_YPIXEL (clist, clist->focus_row);
       
-      gdk_draw_rectangle (clist->clist_window, clist->xor_gc, FALSE, 0, y,
-                         clist->clist_window_width - 1,
-                         clist->row_height - 1);
-    }
+          gdk_draw_rectangle (clist->clist_window, clist->xor_gc, FALSE, 0, y,
+                              clist->clist_window_width - 1,
+                              clist->row_height - 1);
+        }
  
-  gdk_window_scroll (clist->clist_window, dx, 0);
-  gdk_window_process_updates (clist->clist_window, FALSE);
-
-  if (GTK_WIDGET_CAN_FOCUS(clist) && GTK_WIDGET_HAS_FOCUS(clist) &&
-      !container->focus_child)
-    {
-      if (GTK_CLIST_ADD_MODE(clist))
-       {
-         gint focus_row;
+      gdk_window_scroll (clist->clist_window, dx, 0);
+      gdk_window_process_updates (clist->clist_window, FALSE);
+
+      if (GTK_WIDGET_CAN_FOCUS(clist) && GTK_WIDGET_HAS_FOCUS(clist) &&
+          !container->focus_child)
+        {
+          if (GTK_CLIST_ADD_MODE(clist))
+            {
+              gint focus_row;
          
-         focus_row = clist->focus_row;
-         clist->focus_row = -1;
-         draw_rows (clist, &area);
-         clist->focus_row = focus_row;
+              focus_row = clist->focus_row;
+              clist->focus_row = -1;
+              draw_rows (clist, &area);
+              clist->focus_row = focus_row;
          
-         gdk_draw_rectangle (clist->clist_window, clist->xor_gc,
-                             FALSE, 0, y, clist->clist_window_width - 1,
-                             clist->row_height - 1);
-         return;
-       }
-      else if (ABS(dx) < clist->clist_window_width - 1)
-       {
-         gint x0;
-         gint x1;
+              gdk_draw_rectangle (clist->clist_window, clist->xor_gc,
+                                  FALSE, 0, y, clist->clist_window_width - 1,
+                                  clist->row_height - 1);
+              return;
+            }
+          else if (ABS(dx) < clist->clist_window_width - 1)
+            {
+              gint x0;
+              gint x1;
          
-         if (dx > 0)
-           {
-             x0 = clist->clist_window_width - 1;
-             x1 = dx;
-           }
-         else
-           {
-             x0 = 0;
-             x1 = clist->clist_window_width - 1 + dx;
-           }
-
-         y = ROW_TOP_YPIXEL (clist, clist->focus_row);
-         gdk_draw_line (clist->clist_window, clist->xor_gc,
-                        x0, y + 1, x0, y + clist->row_height - 2);
-         gdk_draw_line (clist->clist_window, clist->xor_gc,
-                        x1, y + 1, x1, y + clist->row_height - 2);
-       }
+              if (dx > 0)
+                {
+                  x0 = clist->clist_window_width - 1;
+                  x1 = dx;
+                }
+              else
+                {
+                  x0 = 0;
+                  x1 = clist->clist_window_width - 1 + dx;
+                }
+
+              y = ROW_TOP_YPIXEL (clist, clist->focus_row);
+              gdk_draw_line (clist->clist_window, clist->xor_gc,
+                             x0, y + 1, x0, y + clist->row_height - 2);
+              gdk_draw_line (clist->clist_window, clist->xor_gc,
+                             x1, y + 1, x1, y + clist->row_height - 2);
+            }
+        }
     }
 }